import java.util.Arrays;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: wangxin
 * Date: 2024-09-20
 * Time: 19:06
 */
//public class test1 {
//    public static void main(String[] args) {
//// 使用常量串构造
//        String s1 = "hello bit";
//        System.out.println(s1);
//// 直接newString对象
//        String s2 = new String("hello bit");
//        System.out.println(s1);
//// 使用字符数组进行构造
//        char[] array = {'h','e','l','l','o','b','i','t'};
//        String s3 = new String(array);
//        System.out.println(s1);
//    }
//}

//public class test1 {
//    public static void main(String[] args) {
//        System.out.println("hello".length());
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        int a = 10;
//        int b = 20;
//        int c = 10;
//// 对于基本类型变量，==比较两个变量中存储的值是否相同
//        System.out.println(a == b); // false
//        System.out.println(a == c); // true
//// 对于引用类型变量，==比较两个引用变量引用的是否为同一个对象
//        String s1 = new String("hello");
//        String s2 = new String("hello");
//        String s3 = new String("world");
//        String s4 = s1;
//        System.out.println(s1 == s2); // false
//        System.out.println(s2 == s3); // false
//        System.out.println(s1 == s4); // true
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String s1 = new String("hello");
//        String s2 = new String("hello");
//        String s3 = new String("Hello");
//// s1、s2、s3引用的是三个不同对象，因此==比较结果全部为false
//        System.out.println(s1 == s2); // false
//        System.out.println(s1 == s3); // false
//// equals比较：String对象中的逐个字符
//// 虽然s1与s2引用的不是同一个对象，但是两个对象中放置的内容相同，因此输出true
//// s1与s3引用的不是同一个对象，而且两个对象中内容也不同，因此输出false
//        System.out.println(s1.equals(s2)); // true
//        System.out.println(s1.equals(s3)); // false
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String s1 = new String("abc");
//        String s2 = new String("ac");
//        String s3 = new String("abc");
//        String s4 = new String("abcdef");
//        System.out.println(s1.compareTo(s2)); // 不同输出字符差值-1
//        System.out.println(s1.compareTo(s3)); // 相同输出 0
//        System.out.println(s1.compareTo(s4)); // 前k个字符完全相同，输出长度差值 -3
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String s1 = new String("abc");
//        String s2 = new String("ac");
//        String s3 = new String("ABc");
//        String s4 = new String("abcdef");
//        System.out.println(s1.compareToIgnoreCase(s2)); // 不同输出字符差值-1
//        System.out.println(s1.compareToIgnoreCase(s3)); // 相同输出 0
//        System.out.println(s1.compareToIgnoreCase(s4)); // 前k个字符完全相同，输出长度差值 -3
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String s = "aaabbbcccaaabbbccc";
//        System.out.println(s.charAt(3));
//        System.out.println(s.indexOf('c'));
//        System.out.println(s.indexOf('c', 10));
//        System.out.println(s.indexOf("bbb"));
//        System.out.println(s.indexOf("bbb", 10));
//        System.out.println(s.lastIndexOf('c'));
//        System.out.println(s.lastIndexOf('c', 10));
//        System.out.println(s.lastIndexOf("bbb"));
//        System.out.println(s.lastIndexOf("bbb", 10));
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//// 数字转字符串
//        String s1 = String.valueOf(1234);
//        String s2 = String.valueOf(12.34);
//        String s3 = String.valueOf(true);
//        System.out.println(s1);
//        System.out.println(s2);
//        System.out.println(s3);
//        System.out.println("=================================");
//// 字符串转数字
//        int data1 = Integer.parseInt("1234");
//        double data2 = Double.parseDouble("12.34");
//        System.out.println(data1);
//        System.out.println(data2);
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String s1 = "hello";
//        String s2 = "HELLO";
//// 小写转大写
//        System.out.println(s1.toUpperCase());
//// 大写转小写
//        System.out.println(s2.toLowerCase());
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String s = "hello";
//// 字符串转数组
//        char[] ch = s.toCharArray();
//        for (int i = 0; i < ch.length; i++) {
//            System.out.print(ch[i]);
//        }
//        System.out.println();
//// 数组转字符串
//        String s2 = new String(ch);
//        System.out.println(s2);
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String s = String.format("%d-%d-%d", 2024, 9,20);
//        System.out.println(s);
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String str = "helloworld" ;
//        System.out.println(str.replaceAll("l", "_"));
//        System.out.println(str.replaceFirst("l", "_"));
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        //字符串的拆分
//        String str1 = "hello world hello man" ;
//        String[] result1 = str1.split(" ") ; // 按照空格拆分
//        for(String s: result1) {
//            System.out.println(s);
//        }
//        System.out.println("==========================");
//        //字符串的部分拆分
//        String str2 = "hello world hello man" ;
//        String[] result2 = str2.split(" ",2) ;
//        for(String s: result2) {
//            System.out.println(s);
//        }
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String str = "192.168.1.1" ;
//        String[] result = str.split("\\.") ;
//        for(String s: result) {
//            System.out.println(s);
//        }
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        //方法1
//        String str1 = "name=zhangsan&age=18" ;
//        String[] result1 = str1.split("&") ;
//        for (int i = 0; i < result1.length; i++) {
//            String[] temp = result1[i].split("=") ;
//            System.out.println(temp[0]+"  "+temp[1]);
//        }
//        //方法2
//        String str2 = "name=zhangsan&age=18" ;
//        String[] result2 = str2.split("&|=") ;
//        for (String s:result2) {
//            System.out.println(s);
//        }
//    }
//}
//public class test1 {
//    public static void main(String[] args) {
//        String str = "helloworld" ;
//        System.out.println(str.substring(5));
//        System.out.println("=======================");
//        System.out.println(str.substring(0, 4));
//    }
//}
//}
//public class test1 {
//    public static void main(String[] args) {
//        final int array[] = {1,2,3,4,5};
//
//        array = new int[]{4,5,6};
//    }
//}
public class test1 {
    public static void main(String[] args) {
        StringBuilder sb1 = new StringBuilder("hello");
        StringBuilder sb2 = sb1;
// 追加：即尾插-->字符、字符串、整形数字
        sb1.append(' ');
        sb1.append("world");
        sb1.append(123);
        System.out.println(sb1);
        System.out.println(sb1 == sb2);
        System.out.println(sb1.charAt(0)); // 获取0号位上的字符 h
        System.out.println(sb1.length()); // 获取字符串的有效长度14
        System.out.println(sb1.capacity()); // 获取底层数组的总大小
        sb1.setCharAt(0, 'H'); // 设置任意位置的字符 Hello world123
        sb1.insert(0, "Hello world!!!"); // Hello world!!!Hello world123
        System.out.println(sb1);
        System.out.println(sb1.indexOf("Hello")); // 获取Hello第一次出现的位置
        System.out.println(sb1.lastIndexOf("hello")); // 获取hello最后一次出现的位置
        sb1.deleteCharAt(0); // 删除首字符
        sb1.delete(0,5); // 删除[0, 5)范围内的字符
        String str = sb1.substring(0, 5); // 截取[0, 5)区间中的字符以String的方式返回
        System.out.println(str);
        sb1.reverse(); // 字符串逆转
        str = sb1.toString(); // 将StringBuffer以String的方式返回
        System.out.println(str);
    }
}